java破坏了函数,即使它看起来是正确的
我今天一直在测试我的应用程序,在我做了一个完全不相关的更改后,不知怎么的,一个功能坏了,最重要的是,我不明白为什么它不能工作
这是:
public static int componentStrId(String string)
{
for(int i = 0; i < GameMain.ComponentNames.length; i++)
{
Gdx.app.log("GameCoordinator", "componentStrId index: " + i);
if(string == GameMain.ComponentNames[i])
{
return i;
}
}
return -1;
}
在您询问之前,是的,我输入的字符串存在于我搜索的数组中,但函数返回-1。它只是毫无意义地在数组中循环
我有一种感觉,月食吓坏了,虽然也许我只是瞎了眼,看不到明显的错误。。。那么它是什么,前者还是后者
# 1 楼答案
如果你提供
作为参数,它将返回
3
如果单独构造一个字符串,它将始终返回-1,因为只有当两个引用指向同一个对象时
==
才会返回true# 2 楼答案
而不是这个
用这个